<?php
include_once $_SERVER["DOCUMENT_ROOT"].'/service/entite/albummusique/AlbumMusiqueService.php';
include_once $_SERVER["DOCUMENT_ROOT"].'/persistence/musique/MusiqueDAO.php';
include_once $_SERVER["DOCUMENT_ROOT"].'/service/entite/musique/MusiqueEntite.php';
PropertiesLoader::loadProperties($_SERVER["DOCUMENT_ROOT"].'/properties.ini');

class MusiqueService {
		
		private function MusiqueService() {
			//évite la construction
		}
		
		public static function createEnregistrementMusique($idAlbumMusique, $nomMusiqueAlbum, $titre, $numero) {
			$musiqueEntite = new MusiqueEntite();
			$musiqueEntite->nomFichier = $nomMusiqueAlbum;
			$musiqueEntite->titre = $titre;
			$albumMusiqueEntite = AlbumMusiqueService::getAlbumMusiqueByID($idAlbumMusique);
			$musiqueEntite->albumMusique = $albumMusiqueEntite;
			return MusiqueDAO::save($musiqueEntite);
		}
		
		public static function deleteEnregistrementMusique($idAlbumMusique, $nomMusiqueAlbum) {
			return MusiqueDAO::deleteFromNomFichier($idAlbumMusique, $nomMusiqueAlbum);
		}
		
		public static function getMusiqueByNomFichierAndIDAlbumMusique($idAlbumMusique, $nomMusiqueAlbum) {
			return MusiqueDAO::getMusiqueByNomFichierAndIDAlbumMusique($idAlbumMusique, $nomMusiqueAlbum);
		}
		
		public static function deleteMusique($albumMusique, $nomMusiqueAlbum) {
			
			$musiqueEntite = MusiqueDAO::getMusiqueByNomFichierAndIDAlbumMusique($albumMusique->id, $nomMusiqueAlbum);
			
			//supprime le fichier associé
			$nomCompletMusique = MusiqueUtils::getNomCompletMusique($musiqueEntite);
			unlink($_SERVER["DOCUMENT_ROOT"].$nomCompletMusique);
			
			return MusiqueDAO::delete($musiqueEntite->id);
		}
		
		public static function saveInformations($idMusique, $titre, $numero) {
			$musiqueEntite = MusiqueDAO::getMusiqueByID($idMusique);
			$musiqueEntite->titre = $titre;
			$musiqueEntite->numero = $numero;
			MusiqueDAO::save($musiqueEntite);
		}
}
?>